
#ifndef __DOCUMENT_HEADER_H__
#define __DOCUMENT_HEADER_H__

#include <glib.h>
#include <glib-object.h>
#include <gtk/gtk.h>
#include <stdlib.h>
#include <string.h>
#include "document.h"

G_BEGIN_DECLS


#define TYPE_DOCUMENT_HEADER (document_header_get_type ())
#define DOCUMENT_HEADER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DOCUMENT_HEADER, DocumentHeader))
#define DOCUMENT_HEADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DOCUMENT_HEADER, DocumentHeaderClass))
#define IS_DOCUMENT_HEADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DOCUMENT_HEADER))
#define IS_DOCUMENT_HEADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DOCUMENT_HEADER))
#define DOCUMENT_HEADER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DOCUMENT_HEADER, DocumentHeaderClass))

typedef struct _DocumentHeader DocumentHeader;
typedef struct _DocumentHeaderClass DocumentHeaderClass;
typedef struct _DocumentHeaderPrivate DocumentHeaderPrivate;

struct _DocumentHeader {
	GtkHBox parent_instance;
	DocumentHeaderPrivate * priv;
};

struct _DocumentHeaderClass {
	GtkHBoxClass parent_class;
};


DocumentHeader* document_header_construct (GType object_type, const char* filename, Document** doc);
DocumentHeader* document_header_new (const char* filename, Document** doc);
void document_header_set_state (DocumentHeader* self, DocumentDocumentState state);
void document_header_on_close_btn_clicked (DocumentHeader* self);
const char* document_header_get_text (DocumentHeader* self);
void document_header_set_text (DocumentHeader* self, const char* value);
GType document_header_get_type (void);


G_END_DECLS

#endif
